#include <iostream>
using namespace std;
int MaxSum(int *A,int m,int &besti,int &bestj);
inline int max(int i,int j){return i>j?i:j;}
void main()
{
	int A[]={1,3,1,11,5,4};
	int m=10;
	int besti;
	int bestj;
	cout<<MaxSum(A,m,besti,bestj)<<endl;
}
int MaxSum(int *A,int m,int &besti,int &bestj)
{
	int *f=new int[m];
	int *y=new int[m];
	f[0]=A[0];
	y[0]=A[0];
	for (int i=1;i<m;i++)
	{
		y[i]=max(y[i-1]+A[i],A[i]);
		f[i]=max(y[i],f[i-1]);
	}
	return f[m-1];
}